microprocessors explained